﻿Imports Microsoft.VisualBasic
Imports System.Configuration
Imports Comunes
Imports System.Web
Imports System.Data
Imports System.IO
Imports System.Xml

Public Class cls_empresas
#Region "VARIABLES"
    Dim Param As New Comunes.Parametros
    Dim v_obj_clsLibreria As New clsLibreria()
    Dim objWS As New Service.Service
    Dim v_obj_json As New clsJsonSR.clsJsonSR()
    Dim v_obj_clsErrores As New cls_errores()
    Dim v_dts_respuesta As New DataSet
    Dim v_obj_wsService As New Service.Service
    Dim v_obj_clsParametros As New Parametros()
    Dim v_str_keyConn As String = System.Configuration.ConfigurationManager.AppSettings.Get("KeyConexion")
    Dim v_str_glsError As String = ""
    Dim v_str_srcError As String = ""
    Dim v_str_wsError As String = ""
    Dim v_str_metError As String = ""
    Dim v_str_numError As String = ""

    Private _cantPagina As Integer
    Private _numPagina As Integer

    Private _EMEM_RUT As String
    Private _EMEM_RAZON_SOCIAL As String
    Private _CMCM_CODIGO As Integer
    Private _ESES_NID As Integer
    Private _EMEM_DIRECCION As String
    Private _EMEM_TELEFONO As String
    Private _EMEM_MAIL As String

    Private _XML_DATOS_FORM As String

#End Region
#Region "PROPERTY"
    Public Property cantPagina() As Integer
        Get
            Return _cantPagina
        End Get
        Set(ByVal value As Integer)
            _cantPagina = value
        End Set
    End Property

    Public Property numPagina() As Integer
        Get
            Return _numPagina
        End Get
        Set(ByVal value As Integer)
            _numPagina = value
        End Set
    End Property

    Public Property EMEM_RUT() As String
        Get
            Return _EMEM_RUT
        End Get
        Set(ByVal value As String)
            _EMEM_RUT = value
        End Set
    End Property

    Public Property EMEM_RAZON_SOCIAL() As String
        Get
            Return _EMEM_RAZON_SOCIAL
        End Get
        Set(ByVal value As String)
            _EMEM_RAZON_SOCIAL = value
        End Set
    End Property

    Public Property CMCM_CODIGO() As Integer
        Get
            Return _CMCM_CODIGO
        End Get
        Set(ByVal value As Integer)
            _CMCM_CODIGO = value
        End Set
    End Property

    Public Property ESES_NID() As Integer
        Get
            Return _ESES_NID
        End Get
        Set(ByVal value As Integer)
            _ESES_NID = value
        End Set
    End Property

    Public Property EMEM_DIRECCION() As String
        Get
            Return _EMEM_DIRECCION
        End Get
        Set(ByVal value As String)
            _EMEM_DIRECCION = value
        End Set
    End Property

    Public Property EMEM_TELEFONO() As String
        Get
            Return _EMEM_TELEFONO
        End Get
        Set(ByVal value As String)
            _EMEM_TELEFONO = value
        End Set
    End Property

    Public Property XML_DATOS_FORM() As String
        Get
            Return _XML_DATOS_FORM
        End Get
        Set(ByVal value As String)
            _XML_DATOS_FORM = value
        End Set
    End Property
#End Region
#Region "FUNCIONES Y METODOS DE LA CLASE"
    Public Function ListarEmpresas() As String
        Dim v_str_respuestaJson As String = ""
        Try
            v_obj_clsErrores.id = 0
            v_obj_clsErrores.desc = ""
            v_obj_clsErrores.clase = "cls_empresas"
            v_obj_clsErrores.metodo = "ListarEmpresas"
            v_obj_clsParametros.Limpiar()
            v_obj_clsParametros.Agregar("p_cantpag", Me._cantPagina)
            v_obj_clsParametros.Agregar("p_numPag", Me._numPagina)
            v_obj_clsParametros.Agregar("EMEM_RUT", Me._EMEM_RUT)
            v_obj_clsParametros.Agregar("EMEM_RAZON_SOCIAL", Me._EMEM_RAZON_SOCIAL)
            v_dts_respuesta = v_obj_wsService.EjecutarConParametroXML(v_str_keyConn, v_obj_clsParametros.GeneraDocXML("parametros"), "CRG_EMEM_LISTA_EMPRESAS")
            If v_obj_clsLibreria.RevisaErrores(v_dts_respuesta, v_str_glsError, v_str_srcError, v_str_wsError, v_str_metError, v_str_numError) = "0" Then
                v_str_respuestaJson = v_obj_json.listaParaGrilla(True, v_dts_respuesta.Tables(0).Rows(0).Item(0), v_dts_respuesta.Tables(1), v_obj_clsErrores)
            Else
                v_obj_clsErrores.id = v_str_numError
                v_obj_clsErrores.desc = v_str_glsError
                v_obj_clsErrores.registraErrorEnLog()
                v_str_respuestaJson = v_obj_json.listaParaGrilla(False, 0, v_dts_respuesta.Tables(0), v_obj_clsErrores)
            End If
            v_dts_respuesta.Dispose()
        Catch ex As Exception
            v_obj_clsErrores.id = -1000
            v_obj_clsErrores.desc = ex.Message
            v_obj_clsErrores.registraErrorEnLog()
            v_str_respuestaJson = v_obj_json.listaParaGrilla(False, 0, v_dts_respuesta.Tables(0), v_obj_clsErrores)
        Finally
            v_dts_respuesta = Nothing
            v_obj_clsParametros.Dispose()
            v_obj_clsParametros = Nothing
            v_obj_wsService.Dispose()
            v_obj_wsService = Nothing
            v_obj_clsLibreria.Dispose()
            v_obj_clsLibreria = Nothing
        End Try
        Return v_str_respuestaJson
    End Function

    Public Function ListarEstados() As String
        Dim v_str_respuestaJson As String = ""
        Try
            v_obj_clsErrores.id = 0
            v_obj_clsErrores.desc = ""
            v_obj_clsErrores.clase = "cls_empresas"
            v_obj_clsErrores.metodo = "ListarEstados"
            v_dts_respuesta = v_obj_wsService.EjecutarSinParametros(v_str_keyConn, "SPBS_CSCS_LISTA_ESTADOS")
            If v_obj_clsLibreria.RevisaErrores(v_dts_respuesta, v_str_glsError, v_str_srcError, v_str_wsError, v_str_metError, v_str_numError) = "0" Then
                v_str_respuestaJson = v_obj_json.listaParaCombobox(True, v_dts_respuesta.Tables(0), v_obj_clsErrores)
            Else
                v_obj_clsErrores.id = v_str_numError
                v_obj_clsErrores.desc = v_str_glsError
                v_obj_clsErrores.registraErrorEnLog()
                v_str_respuestaJson = v_obj_json.listaParaCombobox(False, v_dts_respuesta.Tables(0), v_obj_clsErrores)
            End If
        Catch ex As Exception
            v_obj_clsErrores.id = -1000
            v_obj_clsErrores.desc = ex.Message
            v_obj_clsErrores.registraErrorEnLog()
            v_str_respuestaJson = v_obj_json.listaParaCombobox(False, v_dts_respuesta.Tables(0), v_obj_clsErrores)
        Finally
            v_dts_respuesta = Nothing
            v_obj_clsParametros.Dispose()
            v_obj_clsParametros = Nothing
            v_obj_wsService.Dispose()
            v_obj_wsService = Nothing
            v_obj_clsLibreria.Dispose()
            v_obj_clsLibreria = Nothing
        End Try
        Return v_str_respuestaJson
    End Function

    Public Function ListarComunas() As String
        Dim v_str_respuestaJson As String = ""
        Try
            v_obj_clsErrores.id = 0
            v_obj_clsErrores.desc = ""
            v_obj_clsErrores.clase = "cls_empresas"
            v_obj_clsErrores.metodo = "ListarComunas"
            v_dts_respuesta = v_obj_wsService.EjecutarSinParametros(v_str_keyConn, "SPBS_CMCM_LISTA_COMUNAS")
            If v_obj_clsLibreria.RevisaErrores(v_dts_respuesta, v_str_glsError, v_str_srcError, v_str_wsError, v_str_metError, v_str_numError) = "0" Then
                v_str_respuestaJson = v_obj_json.listaParaCombobox(True, v_dts_respuesta.Tables(0), v_obj_clsErrores)
            Else
                v_obj_clsErrores.id = v_str_numError
                v_obj_clsErrores.desc = v_str_glsError
                v_obj_clsErrores.registraErrorEnLog()
                v_str_respuestaJson = v_obj_json.listaParaCombobox(False, v_dts_respuesta.Tables(0), v_obj_clsErrores)
            End If
        Catch ex As Exception
            v_obj_clsErrores.id = -1000
            v_obj_clsErrores.desc = ex.Message
            v_obj_clsErrores.registraErrorEnLog()
            v_str_respuestaJson = v_obj_json.listaParaCombobox(False, v_dts_respuesta.Tables(0), v_obj_clsErrores)
        Finally
            v_dts_respuesta = Nothing
            v_obj_clsParametros.Dispose()
            v_obj_clsParametros = Nothing
            v_obj_wsService.Dispose()
            v_obj_wsService = Nothing
            v_obj_clsLibreria.Dispose()
            v_obj_clsLibreria = Nothing
        End Try
        Return v_str_respuestaJson
    End Function

    Public Function buscarDatosEmpresa() As String
        Dim v_str_respuestaJson As String = ""
        Try
            v_obj_clsErrores.id = 0
            v_obj_clsErrores.desc = ""
            v_obj_clsErrores.clase = "cls_empresas"
            v_obj_clsErrores.metodo = "buscarDatosEmpresa"
            v_obj_clsParametros.Agregar("EMEM_RUT", Me._EMEM_RUT)
            v_dts_respuesta = v_obj_wsService.EjecutarConParametroXML(v_str_keyConn, v_obj_clsParametros.GeneraDocXML("parametros"), "CRG_EMEM_BUSCA_DATOS_EMPRESAS")
            If v_obj_clsLibreria.RevisaErrores(v_dts_respuesta, v_str_glsError, v_str_srcError, v_str_wsError, v_str_metError, v_str_numError) = "0" Then
                v_str_respuestaJson = v_obj_json.respuestaFormularioJson(True, v_dts_respuesta, v_obj_clsErrores)
            Else
                v_obj_clsErrores.id = v_str_numError
                v_obj_clsErrores.desc = v_str_glsError
                v_obj_clsErrores.registraErrorEnLog()
                v_str_respuestaJson = v_obj_json.respuestaFormularioJson(False, New Data.DataSet(), v_obj_clsErrores)
            End If
        Catch ex As Exception
            v_obj_clsErrores.id = -1000
            v_obj_clsErrores.desc = ex.Message
            v_obj_clsErrores.registraErrorEnLog()
            v_str_respuestaJson = v_obj_json.respuestaFormularioJson(False, New Data.DataSet(), v_obj_clsErrores)
        Finally
            v_dts_respuesta = Nothing
            v_obj_clsParametros.Dispose()
            v_obj_clsParametros = Nothing
            v_obj_wsService.Dispose()
            v_obj_wsService = Nothing
            v_obj_clsLibreria.Dispose()
            v_obj_clsLibreria = Nothing
        End Try
        Return v_str_respuestaJson
    End Function

    Public Function grabarDatosEmpresa() As String
        Dim v_str_respuestaJson As String = ""
        Try
            v_obj_clsErrores.id = 0
            v_obj_clsErrores.desc = ""
            v_obj_clsErrores.clase = "cls_empresas"
            v_obj_clsErrores.metodo = "grabarDatosEmpresa"
            v_obj_clsParametros.Agregar("p_xml_xmlDatosForm", Me._XML_DATOS_FORM.ToString())
            v_dts_respuesta = v_obj_wsService.EjecutarConParametroXML(v_str_keyConn, v_obj_clsParametros.GeneraDocXML("parametros"), "CRG_EMEM_GRABA_DATOS_EMPRESA")
            If v_obj_clsLibreria.RevisaErrores(v_dts_respuesta, v_str_glsError, v_str_srcError, v_str_wsError, v_str_metError, v_str_numError) = "0" Then
                v_str_respuestaJson = v_obj_json.respuestaFormularioJson(True, v_dts_respuesta, v_obj_clsErrores)
            Else
                v_obj_clsErrores.id = v_str_numError
                v_obj_clsErrores.desc = v_str_glsError
                v_obj_clsErrores.registraErrorEnLog()
                v_str_respuestaJson = v_obj_json.respuestaFormularioJson(False, New Data.DataSet(), v_obj_clsErrores)
            End If
        Catch ex As Exception
            v_obj_clsErrores.id = -1000
            v_obj_clsErrores.desc = ex.Message
            v_obj_clsErrores.registraErrorEnLog()
            v_str_respuestaJson = v_obj_json.respuestaFormularioJson(False, New Data.DataSet(), v_obj_clsErrores)
        Finally
            v_dts_respuesta = Nothing
            v_obj_clsParametros.Dispose()
            v_obj_clsParametros = Nothing
            v_obj_wsService.Dispose()
            v_obj_wsService = Nothing
            v_obj_clsLibreria.Dispose()
            v_obj_clsLibreria = Nothing
        End Try
        Return v_str_respuestaJson
    End Function
#End Region
End Class
